package com.gdust.hzx.manager.service;

import com.gdust.hzx.model.entity.product.Category;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * ClassName: CategoryService
 * Package: com.gdust.spzx.manager.service
 * Description:
 *
 * @Author syun
 * @Create 2024/12/1 17:24
 * @Version 1.0
 */
public interface CategoryService {

    /**
     * 查询列表接口
     * 分类列表，每次查询一层数据
     * SELECT * FROM category WHERE parent_id = #{id}
     * @param id 父节点id
     * @return 分类实体集合与结果枚举
     */
    List<Category> findCategoryList(Long id);

    /**
     * 导出分类数据到 Excel 文件
     *
     * 描述：该接口将分类数据导出为 Excel 文件，并通过 HTTP 响应发送到客户端。
     *
     * @param response HTTP 响应对象，用于将生成的文件流输出到客户端
     */
    void exportData(HttpServletResponse response);

    /**
     * 导入 Excel 文件数据
     *
     * 描述：该方法用于接收上传的 Excel 文件并导入其中的分类数据。
     * 服务层处理文件解析及数据存储逻辑。
     *
     * @param file 上传的 Excel 文件（MultipartFile 类型）
     * @return 操作结果，包含成功状态和返回码
     */
    void importData(MultipartFile file);
}
